Python実践編|資産シミュレーター開発⑤ 〜計算結果をリスト化〜

前回は、Pythonで複利計算シミュレーターの基本部分を作成しました。

作成した機能は、

  • 投資資産額の入力
  • 利回りの入力
  • 運用期間の入力
  • 入力チェック
  • 複利計算

です。

前回のコードでは、計算した結果をそのまま表示していました。

def positive_number(message):
    while True:
        try:
            value = float(input(message))
            if value > 0:
                return value
            else:
                print('0より大きい数値を入力してください')
        except ValueError:
            print('数字を入力してください')

assets = positive_number('投資資産額を入力してください>')
rate = positive_number('想定利回りを入力してください>')
period = positive_number('運用期間を入力してください>')

growth = (1 + rate / 100)

for i in range(1, int(period)):
    result = assets * growth ** i
    print(f'{i}年後:{int(result):,}円')

result = assets * growth ** period
print(f'最終資産額({period}年後):{int(result):,}円')
目次

計算結果を保存する

ここで問題がありました。

このコードでは、毎年の計算結果を表示するだけです。

しかし、今後グラフ表示をするには、計算結果を保存しておく必要があります。

そこで、年数と資産額をリスト化します。

amounts=[] #資産リスト
years=[] #年数リスト

yearsには年数を、amountsには資産額を保存します。

appendでリストに追加する

for文の中で計算した結果を追加します。

for i in range(1,int(period)+1):
    years.append(i)

    result = assets * growth ** i

    amounts.append(result)

append()を使うことで、計算結果をリストへ追加できます。

例えば、

years

には、

[1, 2, 3, 4, 5]

が入り、

amounts

には、

[1050000, 1102500, 1157625, ...]

が入ります。

計算結果を再利用する

以前は最後の資産額を表示するために、もう一度計算していました。

しかし、リスト化したことで最後の値を取り出すだけで済みます。

print(f'最終資産額:{int(amounts[-1]):,}円')

amounts[-1]は、リストの最後の値を取得する書き方です。

同じ計算を繰り返さず、保存したデータを再利用できます。

完成したコード

def positive_number(message):
    while True:
        try:
            value = float(input(message))
            if value > 0:
                return value
            else:
                print('0より大きい数値を入力してください')
        except ValueError:
            print('数字を入力してください')

assets = positive_number('投資資産額を入力してください>')
rate = positive_number('想定利回りを入力してください>')
period = positive_number('運用期間を入力してください>')

growth=(1+rate/100)

amounts=[] #資産リスト
years=[] #年数リスト

for i in range(1,int(period)+1):
    years.append(i)

    result=assets * growth ** i

    amounts.append(result)

    print(f'{i}年後:{int(result):,}円')

print(f'最終資産額:{int(amounts[-1]):,}円')

print(years,amounts)

今回のポイントは、計算するだけではなく、結果を保存して後から使える形にしたことです。

次回は、このリストを使ってmatplotlibで資産推移グラフを作成に入ります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

FIREを目指しながら、投資・プログラミング・家庭菜園・資格勉強に取り組んでいます。試行錯誤しながら積み上げる日々を記録するブログです。

コメント

コメントする

目次